Skip to main content

Full text of "Sinc Link"

See other formats


2 F. CHAMBERS 


SINC - LINK $1.50 per copy 


The Toronto Timex/Sinciair Users Club News letter Vol. 1,  No.2 


P.O. Box 7274, Stn. A Toronto M5W 1X9 


In this issue: 

From the President 

Hardware Review 

Book Revlew 

A Short Program in Forth (ZX Forth) r 

Bug-Byte ZXTK - Application Notes 

Tape Head Allgnment 

Understanding & Using PEEK and POKE 

Expanding RAM 
=================x====x=====zm==x===z=====z======================================================== 
From the President: 

Dear Members: 

Late In 1982, 5 ZX-81 owners met in a bar at Yonge & Eglinton in Toronto to talk about 
their computers. These Gentlemen are now the Executive of the Toronto Timex-Sinclair 
users Club, We are now a National Club with members as far away as B.C. We now have 72 
members, The Club meets the first and third Wednesday of every Month at the North York 
Community Hall at Yonge & Sheppard in Willowdale. Our last meeting before summer break 
wl!! be Wednesday, June 22, Regular meetings wit! resume Wednesday, September 21, The 
Club's financia! status is OK for the time being, so there wil! not be an admission charae 
per meeting, as has been suggested. | would like to remind everyone, If you have any com- 


ments, questions or suggestions of any kind, please fee! free to let me know, | hope you 
enjoy fhis long awalted Newsletter, : 


Yours sincerely, 


Pete Harvey 


====================z=zz=r=================== ================================x=========x=====g==g==s= 


EXECUTIVE 

Librarian - John Castillos 
Asst. Llbrarian - Martin Mauk 
New Members - George Chambers 
Membership Secretary and Education - Greg Lloyd 
Correspondence - Chris Hart 


=============z=z========z=zr=z=z=zr====z===========z===================z======z===z===================== 


Newsletter prepared by GRAPHIC ENTERPRISES, WORD PROCESSING CENTRE 


HARDWARE REVIEW 
- by J.J. Castillos 


MULT I FORTH BY THREE SYSTEMS OF FOR THE 
EPROM CHIP GRAND RAPIDS ZX81 


FORTH is a high-level computer language developed by Charles H, Moore in the last six- 
ties, It was interpretive in the beginning but compiler versions are currently available 
among which is listed the one we are reviewing now, The basic unit in FORTH is the word, 
the language ts usually provided with a certain number of words, each one of which defines 
a given function or routine and the user can add to this vocabulary with other words which 
he designs, Because of the compiler nature of these verslons of the language, it runs 
very fast as compared to BASIC, Speed is not the only advantage to the user since long 
BASIC programs involving complicated subroutines have to be defined only once and then a 
short string of FORTH words can replace what would be many lines of BASIC Program 


Last year | bought the IPS version of compiler FORTH which is supplied as software in a 
cassette and takes about 7K of memory, When the Tree Systems version which is supplied as 
an 8K EPROM chip to replace the BASIC ROM became avallable, | decided to buy it in order 
to compare them, 


One of the first conclusions | drew is that although both versions are roughly comparable 
in memory size, capabilities, speed and number of basic words provided, the Tree Systems 
Chip has some advantages such as the extra memory available to the user. If you have a 
16K RAM pack attached to your ZX81, the IPS FORTH leaves you about 9K of free RAM while 
the Tree Systems chip takes less than 2K for its interna! use and leaves you over 14K for 
your programs, Other advantages are that the Tree Systems chip has a bullt-in editor with 
split screen, it has auto-repeat on al! keys, it is capable of multi-tasking (ie. up to 
ten programs can be scheduled to run at some time in the future, for example, take temper- 
ature readings every 20 minutes, etc.), it has standard ASCII characters which are dis- 
played on the screen and last but not least, the convenience of the chip itself which re- 
quires no loading and provides instant evallability on power-up. Tne 2764 EPROM chip con- 
taining FORTH comes soldered to a small board to which the BASIC ROM can also be attached 
so as to enable the user to switch at wil! between BASIC anc FORTH, 


One serious drawback common to both versions currently available for the ZX81 is the inab- 
tlity to obtain printouts, the results ere just displayed on the screen, Also the claims 
by Tree Systems that their version of FORTH runs up to 130 times faster than BASIC is 


wlidiy exaggerated and misleading. | tried the following standard test in both BASIC and 
FORTH: 
* 
BASIC FORTH 

10 For A= 1 to 3000 

20 Scrol! 3000 1D CR | ° LOOP 

30 Print A 

40 Next A 


In both FAST and SLOW modes FORTH was between 5 and 7 times faster than BASIC which is a 
significant advantage but nothing even close to the above claim 


The FORTH chip plus board comes with a 110 page manual which although ful! of irritating 
spelling errors, is wel! written and to the best of our knowledge, quite error-free, a re- 
freshing change from IPS's notoriously defective manual, 


| must warn potential users that the Tree Systems version of FORTH requires at least 2K of 
RAM and also that the power supply used will have to provide more than 500 mA, The BASIC 
computer plus 16K RAM which we used for the test worked well with such a power supply but 
with tne FORTH chip plugged in the same system was useless due to screen instability, A 
650 mA power supply solved the problem, Finally, you must remember to turn off the com 
puter before attempting to switch from one ROM to the other. 


Summing up, If you want to do serious programming in FORTH, the Tree Systems version is 
good value for your money unless you wish to walt to see If a chip becomes avaliable In 
the future to provide access to the ZX Printer and perhaps more fig-FORTH commands, On 
the other hand, If you only want to see what FORTH Is like and just try lt out, then the 
IPS software version (ZX FORTH) should suffice, 


The FORTH EPROM chip plus board and manua! is avallable from Tree Systems of Grand Raplds, 
Michigan, USA for US$ 49,95, 


BOOK REVIEW 
y Je Je Castil!os 


MASTERING YOUR TIMEX SINCLAIR 1000 PERSONAL COMPUTER by Tim Hartnel! and Diiwyn Jones, 
BANTAM BOOKS paperback, New york/Toronto, $3.95 (COLES BOOKS), 


At fast a comprehensive book to introduce users to ZX81 BASIC at a reasonable price! A 
puzzting fact that caused me great concern when | began buying computer books was that the 
prices were remarkably high for shoddtly produced, thin paperbacks, often full of frus- 
trating errors both in the text and in the program listings, Some people were obviously 
making huge profits with very ttttle effort at the expense of us users who had at the time 
very little cholce., 


The above book written by Tim Hartnel!, former Editor of ZX COMPUTING magazine, and 
Dilwyn Jones, a user himself and founder of a ZX81 Club in North Wales, is one of the best 
Introductions to Sinclair BASIC that | have seen, The book starts assuming that you know 
absolutely nothing about computers and devotes several chapters to explain the different 
commands avallable in Sinclair BASIC, A study of conditional statements, loops and arrays 
follows before the authors wrap up their description with moving graphics and the more 
esoteric PEEKs and POKEs, The book ends with two valuable chapters on Business Applica- 
tions and on converting other BASIC listings to the ZX81 version, The latter is the most 
complete list of functions and their Sinclair equivalents that ! have seen so far, 22 
pages tn all. Even somewhat experienced people such as myself gained valuable new know- 
ledge after reading this book which includes dozens of examples to illustrate every point 
the authors make, For instance, | knew that by POKEtng 16418,0 | could PRINT on all 24 
lines of the screen but | did not know that by POKEing numbers between 3 and 21 in that 
location, a SCROLL wit! begin above the norma! starting point (tine 21) leaving variable 
portions of the screen untouched. Try the following: 10 PRINT AT 17,0; "UNAFFECTED 
LINES" 20 PRINT AT 21,0; "OF THE SCREEN..." 30 POKE 16418,10 40 SCROLL 50 PRINT "A LINE 
OF TEXT TO BE SCROLLED UP" 60 GOTO 40, RUN this program in SLOW mode and see what 
happens. 


The book is well written, in plain English and with a no-nonsense approach, and wil! be 
very useful to any serious ZX81 user, | tried hard to find errors or obscure points but 
could not find any, which is a recommendation in itself. 


A SHORT PROGRAM IN FORTH (ZX FORTH) 
by - J. J. Castillos 


If you are like me, you got your copy of ZX FORTH, loaded lt, played a bit with It and 
after realizing how different it was from BASIC, you put it away for a while, Just now | 
am beginning to grasp the elementary notions of FORTH programming and ! would tike to 
share with you a short program which shows some simple graphic and printing routines (each 
# represents one blank space), Compare the speed of execution with a similar BASIC pro- 
gram, for example, any of the BASIC games you may have which starts by drawing a black 
border around the screen, 


(30 spaces) 
G 24 | DO CR "##" 128 EMIT ,.'FEXERERERERBRRRHREHTEESHESESEKFS" 128 EMIT LOOP ; Newline 


A ."##" 31 Ø DO 128 EMIT LOOP ; Newline 
M 10 1 DO CR LOO ; Newline 


E ."##" 128 EMIT ."####THIS IS A DEMONSTRATION" CR CR ; Newline 


ee 


S ."##" 128 EMIT ."#####OF FORTH GRAPHICS..." CR CR ; Newline 


(14 spaces) 
X "ff" 128 EMIT ,'FXE£sfAssbsii$tiY" ; Newline 


continued. ess 


After making the above definitions exactiy as listed, you can run the program by entering 
tne following list of words: 


TASK G A HOME AME S X Newline 


and see what happens, Remember that after the laborious entering of the definitions, 
these stay in memory and are added to your Vocabulary, the actual program is the last 
short line of words, 


BUG-BYTE ZXTK Application Notes 
- by G.F. Chambers 


As many purchasers of the Bugbyte ZXTK Too! kit program are no doubt aware the instruction 
leaflet supplied with the cassette can be rather daunting. For the benefit of the neo- 
phyte programmer like myself,! have put together these notes which should help in getting 
started. Note these are applicable to the ZX81 with a Sinclair 16K RAM attached. 


STEP. ACTION ON-SCREEN RESULT T 
1 Load ZXTK (Tool kit) On completion, displays advice to stop; after a 
pause the option list appears, 
2 Stop tape recorder <<< 
3 Press BREAK key Report code (Inverse D/O) appears, 
4 Enter POKE 16589, 120 Screen clears and Report code (0/0) appears. 
5 Enter RAND USR 17054 Menu reappears. 
6 Press 8 Fig 8 appears as OPT=8, 
7 Press N/L Start = appears. 
8 Press 1 Fla ! appears as START = 1, 
9 Press N/L END = appears. 
10 Press 5 Fig 3 appears as END-5, 
11 Press N/L Inverse 0 appears, 
12 Press BREAK Report code (Inverse D/O) appears. 


This sequence has placed ZXTK safely above RAMTOP, Now proceed to load a program in 
normal fashion (step 13), 


STEP ACTION ON-SCREEN RESULT 
13 Load your program -——- 

14 Enter PRINT PEEK 31954 205 appears in upper RH corner, 
15 Enter RAND USR 31954 Report code (0/0) appears. 

16 Enter RAND USR 17034 Menu re-appears, 


the 


You are now ready to apply the ZXTK functions to your program, As an example, to renumber 
a program to start at line 100 and increment.in steps of 10 line numbers, follow the se- 
quence below: 


STEP. ACTION ON-SCREEN RESULT 
1 PRESS 2 OPT=2 
2 PRESS N/L START = 
3 PRESS 100 start = 100 


continued.. ses 


STEP ACT ION ON-SCREEN RESULT 


4 PRESS N/L Step = 
5 PRESS 10 Step = 10 
6 PRESS N/L Screen goes blank for several seconds, Display re- 


appears with a ZXTK successful completion report 
code (Inverse 0), 


Your program is now renumbered, You may observe this by entering BREAK, then LIST 100, 
Enter RAND USE 17034 to get back to ZXTK menu. 


SSS SPSS SSSSSSSSSHSSSSSSSSSSESHS SSS HS SSS SSESSSSSSS SS SSESS SH SSH SHS SSSS SS SSS SESS SHS SSS SSS SSSSSSSeEsss= 


TAPE HEAD ALIGNMENT 
= by Stan Plotrowsk! 


if you are experiencing LOADing problems with commercia! or tapes from our club library, 
in all probebliity your "Azimuth" is not correct, (Fig.l). This simply means that the 
tape is not running at right angles to the tape head. The following tests and corrections 
should be made to avold frustration both to yourself and our librerlan, The best time Is 
when you first obtain a new or different tape recorder in order to avoid re-SAVEtng ali 
your programs after your recorder is set perfectly. 


AY Ra SER D Pos? 
E Fib ADOTQOS NG 


bine 
` 


SLo7 (9 
Tate DEC < 


&opY 
Unplug the tape deck and without any tape tn it, press the "Play" button. There are two 
tape heads that will! move forward (your erase and Record/Piaytack heads), On closer in- 
spection, you wil! see two solid supporting posts under one head, This ts the Erase 
Head. Under the other head you will see one solid supporting post and one spring-type 
post, This Is the head you wit! be adjusting. Now, take note that above this spring post 
ts a slotted screw, This is where you wlll make your adjustments for perfect LOADIng. 


Above this screw, there is usually a slot in the body of the recorder in order to fit a 
smal! screw driver so adjustments can be made with the tape running. (Fic.2). 


Press tne "Stop" button so the tape heads move back to their resting or '"not-playing" pos- 
ltlon, Plug the tape recorder in and use either a commercial ZX-81/Timex 1000 computer 
tape or one from the library, (The tape recorder should not be hooked up to your computer 
at this time), Turn the volume down so you can tolerate the whining noise and can clearly 
hear the differences in pitch and clarity of the tape when you make your adjustments, 


Now, slowly turn the screw first in one direction then the other and you wll! Immediately 
hear The sound becoming more BASS or deeper in tone. Turn the screw head back unti! you 
can hear the sound at [ts highest treble or clearest pitch, This is the idea! setting and 
means you have corrected the "Azimuth" problem, The screw shou!d not have turned anymore 
than 1/2 turn from its! origina! position, Remember, DO NOT USE ONE OF YOUR TAPES for 
this test. 


Now that you have your tape deck all tuned up correctly, you may not be able to load al! 
your programs since they were SAVEd when the heads were mis-alianed, There are two alter- 
natives: 1, use another tape deck that has tape recorder (before you align the head), 

2. a slower but effective means using your tape deck alone:- 


To use your tape deck alone you will have to constantly adjust the "Azimuth" adjusting 
Screw by this method: keep that library tape or commercia! tape handy. Put your tape 
back Into the player and adjust the screw until you hear the highest treble, Adjust the 
volume to your normal LOAD level, plug the tape into the computer and LOAD the program, 
Remove your tape and place the Library or Commercial tape back in and with the tape re- 
corder unplugged trom the computer, adjust the screw until you again hear the highest 
treble. SAVE your program as per normal volume etc, 


This is the only solution to your problem, but once comrieteo, your programs should LOAD 
Properly. If you are lucky, you nave only a few programs to LOAD & SAVE by this method, 
otherwise like me, a fot of hours wil! be spent in correcting all your previous SAVEd 
programs, 


UNDERSTANDING AND USING PEEK AND POKE 
= by Stan otr owsk 


All! the memory used by computers is composed of numbers which are called addresses which 
Is the same as line numbers tn Basic, In the ROM memory, the addresses used by the com- 
puter are from O to about 8100, From 8192 to 16383 is the "Ghost area" of the ZX-81 where 
there is no memory, From 16383 to 16515 is the memory used by the computer to keep track 
of how much memory your computer has, or how many lines you are able to use on the screen, 
etc. (your manual gives specific uses of these addresses), From 16514 to 32768 (for 16K 
RAM packs) ts the available memory to be used by you tn your programs, The ROM memory ad- 
dreses are "burned" tn with their specific numbers that tel! the computer how to print the 
letter "A" for example and as such cannot be changed by you. The system variables that 
uses addresses 16383 to 16515 can, in some instances, be changed by you without any 
crashes, f 


10 PRINT PEEK 16388 
20 PRINT PEEP 16389 zi 
RUN & ENTER 


The first number on the screen will be Ø and the second number will be 128, Without gotna 
into full detail! on machine code, in some instances the addresses hold an arithmetic 
number (as opposed to a number that is a machine code command), The pecullar thing about 
2 addresses that have numbers to be used in arithmetic form, is the way they hold them, 
The greatest number that any address can hold is 255 and the lowest is O. Therefore, any 
address can hold one number from f to 255 or 256 possible numbers (O ts a number), 256 ts 
not very high so the computer stentist enable us to count higher by using the combination 
of 2 addresses - the first address would contain a number from O to 256 and likewise the 
second address. But, the second address with a number would be multiplied by 256 and 
added to the first number, In the above program 16588 contains 0 (the first address con- 
tains the "Low" byte) and the second address (the "High" byte) contains 128, Therefore, 
256*128 = 32768 + 0 = 32768, This is the last address for RAMTOP, In some programs you 
are asked to change Ramtop by lowering it so that you can place machine code routines 
above it. These are the addresses used by the computer to keep track of Ramtop so by 
POKE ing different values into these addresses you "fool" the computer into thinking there 
is only room in memory from 16514 to the address you POKEd, for Basic. (Oniy machine code 
can be entered above Ramtop), Therefore, if you want to reserve 1000 Bytes above Ramtop 
for machine code routines you can work It out mathematically: 


1, 32768 - 1000 :obtain value of new Ramtop 
= 31768 
2. INT (31768/256) :value for address 16389 (remember 
- 124 High byte second, low byte first) 
3, 124*256 = 31744 
4, 31768 - 31744 :value for address 16388 
= 24 


Now, by direct command, POKE 16388,24 
POKE 16389,124 
New 
ENTER 


You have now reserved 1000 bytes above Ramtop for your machine code routines. To verify 
this: PRINT PEEK 16388 4 256 * PEEK 16389 and your answer will be 51768, As far as the 
computer is concerned the top of avatlable memory is 31768, 


Turn the computer off then on again and by direct command: PRINT PEEK 16388 - 256 * PEEK 
16589 and the computer wil! now tel! you the end of available memory (Ramtop) is at 
address 32768, By the way, 32768 4- 16514 = approximately 16000 which ts 16K RAM, 


If you noticed in some commercial! programs, the first tine number (which may contain 
machine code) is the number "O", In Basic you cannot enter this as a line number nor can 
you delete a line that is O. You can alter the first line number or make your first line 
number a ^s by POKEtng an address: ` 

1 REM ZX-81 COMPUTER 


BY DIRECT COMMAND: POKE 16510,0 then LIST O, You will see that the first line number in 
your program is now a zero, If you POKE 16510,10 your first line number wil! be 10, 


continued... . eoo 


Another system variable address you can change with discretion is 16418, This address 
holds the number of lines you are able to print on, PRINT PEEK 16418 and your answer wil! 
be 2, When the computer is first turned on, It places 2 at the above location which al- 
lows you to print or use line numbers O to 21 but you can use the full 24 lines (0 to 23) 
of screen, The number 2 is there so that there is room for scroll and INPUT commands and 
for space to give error code reports when your program stops, such as 9/100 which means 
STOP statement executed at line number 100, Whenever you think of the lines on the screen 
such as PRINT AT 10,0 you know that the computer wil! PRINT something about the centre of 
the screen counting down from the top of the screen: 0, 1, 2, etc, The number at address 
16418 counts from the bottom where in this case it means you cannot print on the bottom 3 
lines: 0, 1, 2, You can change this number anywhere from 0 to 24, e.g. 


10 POKE 16418, 10 
20 PRINT AT 18,6; "ZX-81 COMPUTER" 


30 SCROLL 
40 PRINT TAB 10; "HELLO" 
50 GOTO 30 


RUN and ENTER 
9, 


Note where the SCROLLtng begins. 


To use the full 24 tine screen yur program cannot contain a SCROLL or INPUT command or the 
program may crash, 


10 POKE 16418,0 
20 CLS 
30 FOR | = O to 23 
40 PRINT "32 inverse spaces" 
50 PRINT AT l|, (RND*51); "inverse period" 
60 NEXT I 
70 PRINT AT 10,14; "tnverse<, inverse +, inverse?" 
80 IF INKEY$ = "s" THEN GOTO 20 
90 GOTO 80 
RUN and ENTER 


(You need more than IK of RAM for this program), 
Press "S" and the programs starts again. 


So you can see that by POKEing different values into an address you can alter something 
(in the above cases they were all arithmetic values) and tf you learn Machine Code Lang- 
uacge you can alter commands or anything else (or you can cause the computer to crash if 
vou are not careful), 


In some programs you may see machine code routines which can enhance or make a program run 
taster, Typically, a machine code program can run from 20 to 50 times as fast. For 
example; 


10 LET A=10 : in thls basic program line, the number of bytes used is 18, 
- 4 for the line number 
- | for LET 
- | for A 
- | for = 


-10 for 10 (5 bytes per number ) 
- | for the end-of-line 


M/C: LD A, 10 - uses 2 bytes. (This means Load A with 10 which is tdentical to the 


above Basic line). 


^ot only does machine code use less bytes but because you are working directly with the 
CPU your program does not have to be interpreted from Basic to machine code and back to 
basic then check for syntax errors al! of which are time consuming. 


cont inued..... 


The following are 2 machine code loader programs that you can use to POKE machine code in- 
to a REM statement or above RAMTOP, 


Decimal 

10 LET X=16514 :tf above RAMTOP then change this value to the first address above 
RAMTOP value, 

20 INPUT Y 


30 POKE X, Y 
40 SCROLL 

50 PRINT X, Y 
60 LET X=X+1 


70 GOTO 20 


ENTERING HEX NUMBERS 

10 LET x=16514 

20 INPUT Y$ 

30 POKE 16*CODE Y$ + CODE Y$(2) - 476 
40 SCROLL 

50 PRINT 16* CODE Y$ + CODE Y$ - 476 
60 LET X = X+] 

70 GOTO 20 


These loader programs enable us to quickly POKE machine code routines instead of labor- 
ious!y POKE ina them separately such as: 


POKE 16514,23 
POKE 16515,82 
POKE 16516,20 
etc, 


To see the difference in speed in Basic compared to Machine Code try these 2 routines, 


BASIC MACHINE CODE 
10 PRINT "p" 1 REM 1234567 POKE 16514,62 
20 GOTO 10 POKE 16515,5535 


POKE 16516,205 
POKE 16517,8 
POKE 16518,8 
POKE 16519,24 
POKE 16520,249 


The following are short machine code routines placed as the first statement in your pro- 
gram, 


Al! machine coce routines in the following example are placed in REM statements, 


cont inued,.... 


€ 


. 


inverse of all characters on screen: 


1 REM 12345678901234567890 (20 bytes placed in REM statement), 

:enter the decima! loader with X=16514 then INPUT the following numbers; 
42,12,64,6,23,45,35,126,254,118,32,5,16,248,201,198,128,119,24,242 

(of course you do not enter the commas) 


Delete the above loader program BUT NOT THE REM STATEMENT and enfer the following example 
program: 


10 PRINT AT 6,8; "ZX-81 COMPUTER"; AT 9,8; "INVERSE DEMO" 
20 PAUSE 50 

50 RAND USR 16514 

40 PAUSE 50 

50 RAND USR 16514 

60 STOP 


(RAND USR ts the same as RUN AND ENTER tn Basic), 


Delete Lines 20, 30, 40, 50 and enter the following Lines: 


20 FOR | = 1 TO 10 
30 RAND USR 16514 
40 NEXT I 


You can see where you might be able to enhance a program that you made up by adding a pro- 
gram line of RAND USR 16514 to get the inverse and then to change it beck use of the USR 
command again. 


SCROLL ROUTINES 


You wil! have noticed by now how slow the SCROLL command on the ZX-81 is and the lonaer 
the program, the longer lt takes to print on the screen. Also, after you have printed and 
scrolled numerous times, it seems to take forever to clear the screen, In the ZX-81 there 
is no Baste command to Scroll down, The following are machine code routines for Scrolling 
up or down, 


1 REM (46 bytes such as 46 x X's, 
Enter the Decima! Loader Program and INPUT the following numbers: 
42, 12, 64, 229, 17, 33, 0, 25, 209, 1, 214, 2, 237, 176, 201, 42, 16, 64, 17, 67, O, 
237, 82, 229, 17, 33, 0, 237, 82, 209, 1, 181, 2, 237, 184, 42, 12, 64, 6, 32, 35, 54, 0, 
16, 251, 201, 
After entering the above numbers, delete the loader program leaving the REM statement, 
here ts a short Basic program to use the scroll routines: 

10 PRINT AT 10,10; "ZX=-81 COMPUTER" 

20 IF INKEYS="U" THEN RAND USR 16514 

30 IF INKEY$z"D" THEN RAND USE 16529 

40 GOTO 20 

RUN & ENTER 


When you press U the Print statement wil! move Up and by press D the sfatement wi!! move 
down, 


To make further use of the Scroll routines in a program you could do the fot lowina: 


Delete all the lines except your REM statement containing the machine code for the Scrol! 
routines, Enter the following short Basic Program, 


continued... . eee 


10 LET A=16514 
20 LET B=16529 


30 LET X220 :the letters are assigned in order to save bytes in memory 
40 LET Y=0 since a letter takes only | byte whereas each number takes 5 
bytes; multiply that by the number of times you wil! be us- 
tng the routines in a program and it wll! be a considerable 


savina in bytes. 


50 PRINT AT X,Y; "THIS IS A DEMONSTRATION IN" 

60 RAND USR A 

70 RAND USR A 

80 FOR | = 1 TO 50 

90 NEXT I 

100 PRINT AT X, Y; "THE USE OF THE SCROLL ROUTINE" 
110 FOR | = 1 TO 10 

120 RAND USR A 

130 NEXT | 

140 STOP 


Note the use of the PRINT AT statement, In the Basic Sinclair Scroll! the statement wil! 
automotically print at the bottom of the screen but in machine code Scrol! you must spec- 
tty this. 


Note also, lines 80 and 90, You could have used PAUSE 50 but the FOR/NEXT loop as used 
here is a short timing loop that does the same thing only tt is a smoother transition tn- 
stead of the jerky PAUSE, 


EXPANDING RAM 
- by Jack Paget 


ZX-81 TECHNICAL CORNER 
By Brett Hilder 


1) Question: Can | get more memory 
inside my unexpanded ZX-817? 


The article on the right appeared tn Answer: A 2K RAM chip can be added 
Gladstone's catalogue, It seemed quite internally to provide 2K interna! RAM 
Simple, and as | had found the 1K RAM for the A281, The ram IC4-4118 should 
small, ! thouoht 2K would allow more be removed and one 6116-3 should re 
flexibit!tty during my learnina 2X61 place tt. Link £2 should replace Link 
programming end logically to me postpone #1. (Please note that internal RAM is 
a decision of what size RAM to buy. always disabled when additional memory 


links are used). 


*ANY Interna! modifications to a ZX-81 
wilt void the warranty and should be 
attempted by individuals who have 
electronic expertise, 


Upon removing the computer circuit board, | found mine did not look like the one pictured 
on page 162 of the AX81 Manual. 


Al! IC's were soldered to the PC Board, There were (2) two 2116 chips side by side labe!- 
led icáa anc Ic4b, 


| removed Icéa, using solder wick on each of the pins of the Ic4a, Then, usino Radio 
Shack's Spring Extractor, | heated the pins simultaneous!y, using Ungars Ic heartna pad on 
a 42 watt soldering pen. The Ic popped off the board, Apparently tt would be wise to use 
a 3-wire grounded tip iron, 


| then, usina a sharpened toothpick, and the computer clamped on a vice, pushed the sharp 
end into each of the Ic pin holes, having melted the solder from the back of the PC 
board. Once each hole was cleared, | soldered a socket for the 6116 Ic into place, Then 
| inserted the 6116, checkina carefully that the chip's #1 pin engaged the circuit's f! 
trace. 


continuedsccesece 


| then carefully cut (using a dentist's pic) tne *5V trace to Ic4b, This is not noted in 
tne article but Dennis mentioned this should be done. 


After assembly hooking up power and TV, | found ! had a white screen, which proved to be a 
permanent glitch, no cursar, (K,L,G,F,) anc when switching power on anc off, | would sore 
times aet a black screen, 


Needless to say, the 90 day warranty was now invalid, Tne author, Brett Hilder was puz- 
zied., Tne distributor suggested $35,00 minimum to $129.00 maximum would fix if, Not what 
| wanted. 


Atter 2-3 weeks of "asking people what | should try next" and readina about how Ic cir- 
Cults work and checking the circult board for treaks or shorts in the traces, | finally 
pulled The 2nd l|cá off the board, reconnected the computer to tne TV and it worked, 


On the "HeatLoad" proaram | was working on, | was out of RAM and after tidying up the dis- 
play, | found | had used over 1600 bytes. 


Needless to say, I'm quite happy and | am quite likely to get into the circuit again, to 
add "Push to Reset" and possibly a composite video píus sync circutt to connect to a 
monitor, 


======z==z=z=zz====z=z=z=z====xz========x=x=========z=z=zz=z==========================r============================